1 REM FROM COMMODORE 1540 DISK MANUAL 2 REM GREATLY MODIFIED BY ROY ROBINSON VANCOUVER P U G 3 REM 4 REM 5 SC=36879 10 PRINT"[147][191][191][191][191][191][191][191][191][191][191][191][191][191][191][191][191][191][191][191][191][191][191] DISK FILE PROGRAM [146]" 20 PRINT"[144]DO YOU NEED INSTRUCTIONS [158]?[146][144]" 30 PRINT" [158]Y[146]ES OR [158]N[146]O " 35 POKESC,31:GETO$:IFO$<>"Y"ANDO$<>"N"THEN35 40 POKESC,29:IFO$="Y"THENGOSUB1450:GOSUB2000 50 REM *********************** 60 REM * RANDOM FILE EXAMPLE * 70 REM *********************** 80 DIMI$(664):FD=0:FX=5:CH=2:FP=1:POKESC,29:F=0:O$="" 90 PRINT"[147][191][191][191][191][191][191][191][191][191][191][191][191][191][191][191][191][191][191][191][191][191][191]" 100 PRINT" INSERT DATA DISK[157][157][157][157][157][157][157][157][157][196][196][196][196][196][196][196][196][196]" 120 PRINT"TO START PRESS '[158]S[146]'" 121 POKESC,31:GETP$:IFP$<>"S"THEN121 122 POKESC,29:OPEN15,8,15,"I0":OPEN2,8,2,"#":OPEN1,8,0,"$0" 123 PRINT"[147][197][197][197][197][197][197][197][197][197][197][197][197][197][197][197][197][197][197][197][197][197][197]"; 124 PRINT" INDEX FILE OPERATION" 125 PRINT"[198][198][198][198][198][198][198][198][198][198][198][198][198][198][198][198][198][198][198][198][198][198]" 140 T$="":I$="" 150 GET#1,B$ 160 IF B$<>CHR$(34) THEN 150 170 GET#1,B$:IF B$<>CHR$(34)THEN T$=T$+B$:GOTO170 180 PRINT" "T$; 190 I$=I$+C$:GET#1,C$:IFC$<>""THEN190 200 PRINT""LEFT$(I$,3)" [146]"; 210 CLOSE1 220 PRINT"[156]**********************"; 250 PRINT" IS THIS A BLANK[144][146]DATA DISK ?" 251 PRINT" [158]Y[146][144]ES OR [158]N[146][144]O " 252 POKESC,31:GETO$:IFO$<>"Y"ANDO$<>"N"THEN252 253 POKESC,29:GOSUB1450:IFO$="N"THEN259 255 FORI=1TO664:I$(I)="/" 256 PRINT"[158] WAIT ![146]"; 257 PRINTI;:PRINTTAB(15)I$(I);: 258 NEXTI:GOTO50 259 OPEN5,8,5,"0:INDEX,S,R" 260 FORI=1TO664:INPUT#5,I$(I) 270 PRINT"[158] WAIT ![146] [157][157][157][157][157]"; 275 PRINTI;:PRINTTAB(15)I$(I); 280 NEXTI:CLOSE5 290 PRINT"[147][197][197][197][197][197][197][197][197][197][197][197][197][197][197][197][197][197][197][197][197][197][197]"; 300 PRINT" JOB MENU "; 310 PRINT"[198][198][198][198][198][198][198][198][198][198][198][198][198][198][198][198][198][198][198][198][198][198]"; 320 PRINT 330 PRINT" [158]C[146]REATE" 340 PRINT" [158]D[146]ELETE" 350 PRINT" [158]S[146]EARCH" 360 PRINT" [158]E[146]ND" 370 PRINT 380 PRINT" ENTER FUNCTION[160]#" 390 POKESC,31:F=0:O$="" 395 GETO$:IFO$=""THEN390 400 POKESC,29:IFO$="E"THENCLOSE15:CLOSE5:CLOSE2:PRINT"[147]":END 410 IFO$="C"THEN475 420 IFO$="S"THEN860 430 IFO$<>"D"THEN290 440 GOTO670 450 REM *********************** 460 REM * MASTER FILE CREATE * 470 REM *********************** 475 PRINT"[147]" 480 PRINT"[197][197][197][197][197][197][197][197][197][197][197][197][197][197][197][197][197][197][197][197][197][197]"; 490 PRINT" [160]MASTER FILE CREATE" 500 PRINT"[198][198][198][198][198][198][198][198][198][198][198][198][198][198][198][198][198][198][198][198][198][198]" 510 POKESC,31:INPUT"RECORD # [158]0[146] [157][157][157][157][157][157][157]";F:POKESC,29 511 GOSUB1450:IF F>664THENH1$="> 664":GOSUB1480:GOTO510 512 IFF=0THEN620 513 IFI$(F)<>"[166]"THENH1$="IS EMPTY":GOSUB1480:GOTO525 514 H1$=" [144]OCCUPIED":GOSUB1480 515 PRINT" DO YOU WISH TO:[158]1[146] WRITE FILE ?[158]2[146] READ FILE ?" 516 PRINT"[158]3[146] ANOTHER FILE ?" 517 POKESC,31:GETO$:IFO$<>"1"ANDO$<>"2"ANDO$<>"3"THEN517 518 POKESC,29 519 ONVAL(O$)GOTO525,890,620 525 GOSUB1450 535 FORI=1TO5:FB$(I)="":NEXT 537 PRINT"[183][183][183][183][183][183][183][183][183][183][183][183][183][183][183][183][183][183][183][183][183][183]"; 538 PRINT"RECORD # ";F 540 INPUT"[158]NAME[146] =[157][157]";FB$(1) 550 INPUT"[158]ADD.[146] =[157][157]";FB$(2) 560 INPUT"[158]ZIP [146] =[157][157]";FB$(3) 570 INPUT"[158]TEL.[146] =[157][157]";FB$(4) 580 INPUT"[158]COM.[146] =[157][157]";FB$(5) 590 GOSUB1180 600 I$(F)="[166]" 610 GOTO480 620 GOSUB1450:OPEN5,8,5,"@0:INDEX,S,W" 630 FORI=1TO664:PRINT#5,I$(I);CHR$(13); 640 PRINT"[158] WAIT ![146] [157][157][157][157][157]"I;I$(I) 650 NEXT:CLOSE5 660 IF F<>0THEN475 665 GOTO290 670 REM *********************** 680 REM MASTER FILE DELETE 690 REM *********************** 700 PRINT"[147][144][197][197][197][197][197][197][197][197][197][197][197][197][197][197][197][197][197][197][197][197][197][197]"; 710 PRINT" MASTER FILE DELETE" 720 PRINT"[144][198][198][198][198][198][198][198][198][198][198][198][198][198][198][198][198][198][198][198][198][198][198]":PRINT 730 POKESC,31:INPUT"RECORD # [158]0[146] [157][157][157][157][157][157][157]";F:POKESC,29 731 IF F>664THENH1$="> 664":GOSUB1480:GOTO730 733 IFF=0THEN810 735 IFI$(F)<>"[166]"THENH1$="IS EMPTY":GOSUB1480:GOTO730 740 H1$=" [144]OCCUPIED":GOSUB1480 750 PRINT"[158][196][196][196][196][196][196][196][196][196][196][196][196][196][196][196][196][196][196][196][196][196][196]" 760 PRINT" RECORD NO."F;"DELETE[157][157][157][157][157][157][184][184][184][184][184][184]  ARE YOU SURE [158]?[146]" 765 PRINT" [158]Y[146]ES OR [158]N[146]O " 770 POKESC,31 775 GETX$:IFX$<>"N"ANDX$<>"Y"THEN770 780 POKESC,29:IFX$="N"THEN700 790 I$(F)="/" 800 GOSUB1450:GOTO730 810 OPEN5,8,5,"@0:INDEX,S,W" 820 FORI=1TO664:PRINT#5,I$(I);CHR$(13); 830 PRINT"[158] WAIT ![146] [157][157][157][157][157]"I;I$(I) 840 NEXT:CLOSE5 850 GOTO290 860 REM *********************** 870 REM * FILE SEARCH * 880 REM *********************** 890 PRINT"[147][197][197][197][197][197][197][197][197][197][197][197][197][197][197][197][197][197][197][197][197][197][197]"; 900 PRINT" SEARCH " 910 PRINT"[198][198][198][198][198][198][198][198][198][198][198][198][198][198][198][198][198][198][198][198][198][198]":PRINT 915 IFO$="2"THEN930 920 POKESC,31:INPUT"RECORD # [158]0[146] [157][157][157][157][157][157][157]";F:POKESC,29 930 POKESC,29:IF F>664THENH1$="> 664":GOSUB1480:GOTO920 940 IFF=0THEN290 950 IFI$(F)<>"[166]"THENH1$="IS EMPTY":GOSUB1480:GOTO920 960 H1$="OCCUPIED":GOSUB1480:GOSUB1070 970 GOSUB1450 975 PRINT"[183][183][183][183][183][183][183][183][183][183][183][183][183][183][183][183][183][183][183][183][183][183]"; 980 PRINT"RECORD # ";F 1000 PRINT"NAME[146]:";FB$(1) 1010 PRINT"ADD.[146]:";FB$(2) 1020 PRINT"P.C.[146]:";FB$(3) 1030 PRINT"TEL.[146]:";FB$(4) 1040 PRINT"COM.[146]:";FB$(5) 1050 PRINT"---------------------" 1055 IFO$="2"THEN480 1060 GOTO920 1070 REM *********************** 1080 REM * FDD BLOCK READ * 1090 REM *********************** 1100 GOSUB1380 1110 PRINT#15,"U1:";CH;FD;FT;FS 1120 PRINT#15,"B-P:";CH;FP 1130 GOSUB1270 1140 FORFI=1TOFX 1150 INPUT#CH,FB$(FI): 1160 NEXT 1170 RETURN 1180 REM *********************** 1190 REM * FDD BLOCK WRITE * 1200 REM *********************** 1210 GOSUB1380 1220 PRINT#15,"B-P:";CH;FP 1230 FORFI=1TOFX:PRINT#CH,FB$(FI);CHR$(13);:NEXT 1240 PRINT#15,"U2:";CH;FD;FT;FS 1250 GOSUB1270 1260 RETURN 1270 REM *********************** 1280 REM * ERROR CHECK * 1290 REM *********************** 1300 INPUT#15,EN,EM$,ET,ES 1310 IFEN=0THENRETURN 1320 PRINT"ERROR STATUS:";EN;EM$;ET;ES 1330 POKESC,31:INPUT"CONTINUE?";Y$POKESC,29:IFY$="Y"THENRETURN 1340 STOP 1350 REM *********************** 1360 REM * SET TRACK & SECTOR * 1370 REM *********************** 1380 IFF<358THENF1=0:F2=22:F3=1:GOTO1420 1390 IFF>357ANDF<471THENF1=357:F2=20:F3=19:GOTO1420 1400 IFF>471ANDF<580THENF1=471:F2=19:F3=25:GOTO1420 1410 IFF>580THENF1=580:F2=18:F3=31 1420 FT=INT(((F-F1)-1)/(F2-1))+F3 1430 FS=F-F1-(FT-F3)*F2+(FT-F3-1) 1440 RETURN 1450 FORQ=4272TO4601: 1460 POKEQ,32:NEXT 1470 RETURN 1480 H$="[144]RECORD #":C$=" [145]" 1490 PRINT""C$;H$;F;H1$;"" 1500 RETURN 1510 STOP 2000 PRINT"THIS PROGRAM CREATES A DISK FILE WITH 664 RECORDS ( # 1-664 )." 2010 PRINT"THE JOB MENU ALLOWS SELECTION OF FOUR FUNCTIONS." 2020 PRINT"ENTERING RECORD[146] # [158]0[146] WILL TAKE YOU BACK TO THE MENU" 2030 PRINT"CONTINUE [158]Y[146]ES OR [158]N[146]O"; 2040 POKESC,31:GETO$:IFO$<>"Y"ANDO$<>"N"THEN2040 2045 POKESC,29 2050 IFO$="N"THEN RETURN 2060 GOSUB1450 2070 PRINT"THE BORDER COLOR WILL BECOME [158]YELLOW WHEN A"; 2080 PRINT"RESPONSE IS EXPECTED." 2090 PRINT"THE RETURN KEY MUST BE DEPRESSED AFTER ENTERING THE RECORD#."; 2100 PRINT"DO YOU WISH TO REREAD THE INSTRUCTIONS"; 2110 PRINT" [158]Y[146]ES OR [158]N[146]O " 2120 POKESC,31:GETO$:IFO$<>"Y"ANDO$<>"N"THEN2120 2130 POKESC,29:IFO$="N"THENRETURN 2140 GOTO40